f4d7929d0ddcddd2c9baadef40ae73e1e9a7d8ba,app/src/main/java/io/github/benoitduffez/cupsprint/printservice/CupsService.java,CupsService,onRequestCancelPrintJob,#PrintJob#,107

Before Change


    @Override
    protected void onRequestCancelPrintJob(final PrintJob printJob) {
        final PrintJobInfo jobInfo = printJob.getInfo();
        String url = jobInfo.getPrinterId().getLocalId();
        String clientUrl = url.substring(0, url.substring(0, url.lastIndexOf('/')).lastIndexOf('/'));
        final int jobId = mJobs.get(printJob.getId());

After Change


    @Override
    protected void onRequestCancelPrintJob(final PrintJob printJob) {
        final PrintJobInfo jobInfo = printJob.getInfo();
        final PrinterId printerId = jobInfo.getPrinterId();
        if (printerId == null) {
            Crashlytics.log("Tried to cancel a job, but the printer ID is null");
            return;
        }

        String url = printerId.getLocalId();
        String clientUrl = url.substring(0, url.substring(0, url.lastIndexOf('/')).lastIndexOf('/'));
        final PrintJobId id = printJob.getId();
        if (id == null) {
            Crashlytics.log("Tried to cancel a job, but the print job ID is null");
            return;
        }
        final int jobId = mJobs.get(id);

        try {
            final URL clientURL = new URL(clientUrl);
            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {
                    cancelPrintJob(clientURL, jobId);
                    return null;
                }

                @Override
                protected void onPostExecute(Void v) {
                    onPrintJobCancelled(printJob);
                }
            }.execute();
        } catch (MalformedURLException e) {
            Log.e(CupsPrintApp.LOG_TAG, "Couldn't cancel print job: " + printJob + " because: " + e);
            Crashlytics.log("Couldn't cancel job: " + jobId);
            Crashlytics.logException(e);
        }
    }